// Created by ub on 2020/11/10.
/**
 *  double x = 5.5
 *  double y = 7.9
 *  double &rx = x
 *  const double * pd
 *
 *  decltype(x) w; // w is type double
 *  decltype(rx) u = y; // u is type double &
 *  decltype(pd) v; // v is type const double *
 *
 */
#include <iostream>
using namespace std;

template<class T> T lesser( T a , T b)
{
   return a < b ? a : b;
}
int lesser (int a , int b)
{
  a = a < 0 ? -a : a;
  b = b < 0 ? -b : b;
  return a < b ? a : b;
}
/*int main ()
{
  int m = 20,n = -30,x = 15.5 , y = 25.9;
  cout << lesser(m,n) << endl;
  cout << lesser(x,y) << endl;
  cout << lesser<>(m,n) << endl;
  cout << lesser<int>(x,y) << endl;
  return 0;
}*/
